import Vue from 'vue'
import axios from 'axios'
import config from './config'
import Cookies from 'js-cookie'
import router from '@/router'
axios.defaults.baseURL = config.api; // 设置axios的基础请求路径
axios.defaults.timeout = 1000000; // 设置axios的请求时间
axios.defaults.withCredentials = true
// axios.interceptors.request.use(function (config) {
//   // console.log(config);
//   return config;
// })

axios.loadData = async function (url) {
  const resp = await axios.get(url);
  return resp.data;
}
axios.defaults.headers['Authorization'] = localStorage.getItem('accessToken');

// 添加请求拦截器
axios.interceptors.request.use(function (config) {


  // let token = localStorage.getItem('token')
  let token = Cookies.get('lucky')
  console.log(token)
  if (token == null && router.currentRoute.path != '/login') { // 本地无token,不为登录 跳转至登录页面
    window.localStorage.clear();
    router.push('/login')
  } else {
    // if (config.data == undefined) {
    // config.data = {
    // "token": token
    // }

    // } else {
    // Object.assign(config.data, { "token": token })
    // }
    // console.log(config)
  }
  return config
}, function (error) {
  iView.Message.error('请求失败')
  return Promise.reject(error)
})

// axios.interceptors.response.use(function (response) {
//   console.log('interceptors')
//   console.log(response)
//   if (response.hasOwnProperty("data") && typeof response.data == "object") {
//     if (response.data.code === 998) {// 登录超时 跳转至登录页面
//       iView.Message.error(response.data.msg)
//       router.push('/login')
//       return Promise.reject(response)
//     } else if (response.data.code === 1000) {// 成功
//       return Promise.resolve(response)
//     }
//   } else {
//     return Promise.resolve(response)
//   }

// }, function (error) {
//   // 请求取消 不弹出
//   if (error.message != '0000') {
//     iView.Message.error('请求失败')
//   }

//   // 请求错误时做些事
//   return Promise.reject(error)
// })

Vue.prototype.$axios = axios
Vue.prototype.$http = axios; // 将axios添加到 Vue的原型，这样一切vue实例都可以使用该对象


Array.prototype.contains = function (needle) {
  for (i in this) {
    if (this[i] == needle) return true;
  }
  return false;
}

 